草庐IT

c++ - WinAPI DestroyWindow 不工作

全部标签

c - IsAdminUser 返回不正确的值

我正在使用Win32::IsAdminUser()函数(无法粘贴代码,因为要使其可运行,我必须粘贴整个代码)。它返回0,我很好奇为什么因为运行它的用户是Administrators组的成员,所以我创建了一个小测试函数(c++)并在运行IsAdminUser之前运行它这是代码:intdavai(){FILE*fp;fp=fopen("C:\\tmp\\davai.txt","a");fprintf(fp,"shevedidavai");fflush(fp);HANDLEtoken=NULL;HANDLEdupToken=NULL;if(!OpenProcessToken(GetCurre

c - 在 C 中生成进程的简单代码崩溃。为什么?

以下程序崩溃。我做错了什么?#include#includeintmain(){puts("Hello!");returnspawnlp(0,"notepad.exe","notepad.exe","test.txt");} 最佳答案 您缺少作为参数列表的一部分传递的终止NULL。如果没有那个终止符,参数列表的末尾将是未知的,系统将继续读取,这会导致undefinedbehavior由于访问无效的内存位置。 关于c-在C中生成进程的简单代码崩溃。为什么?,我们在StackOverflow

windows - FuncOne() - 和 FuncTwo() 不工作

这是我的代码:if(FuncOne($valOne)-andFuncTwo($valTwo)){...}当这两个函数的计算结果为$false时,if语句中的代码仍会执行。这是为什么?这也没有按预期工作:if(FuncOne($valOne)-eq$true-andFuncTwo($valTwo)-eq$true){...}以这种方式编写时,它会按预期工作。$a=FuncOne($valOne)$b=FuncTwo($valTwo)if($a-and$b){...}这是怎么回事? 最佳答案 这是语法问题。在PowerShell中调用函

c++ - 从 dll 函数调用中正确获取 Windows 版本?

假设我正在编写一个包含获取操作系统版本的函数的多用途dll:voidget_os_version(DWORD*major,DWORD*minor){OSVERSIONINFOEXosvi;ZeroMemory(&osvi,sizeof(OSVERSIONINFOEX));osvi.dwOsVersionInfoSize=sizeof(OSVERSIONINFOEX);//deprecatedbuteasiertouseforthisexample'ssakeGetVersionEx((OSVERSIONINFO*)&osvi);*major=osvi.dwMajorVersion;*m

c - 如何在 C (Windows) 中打印方框字符

如何在C中打印em破折号?其中之一:—每当我这样做时:printf("—")我只会在终端中得到一个ù。谢谢。编辑:下面的代码应该打印出一个Xs和Os外观的网格,水平线带有em破折号。intmain(){chargrid[3][3]={{'a','a','a'},{'a','a','a'},{'a','a','a'}};inti,j;for(i=0;i输出:(“ù”应该是“—”)a|a|aùùùùùùùùùùùùa|a|aùùùùùùùùùùùùa|a|a编辑:我在Windows10x64上使用Codeblocks16.01和C11。编辑:我被告知方框字符,问题已经演变为如何打印这些字符

c - wchar 和注册表项的问题

所以我想向注册表添加一个字符串,因为注册表字符串以NULL结尾,我的字符串在各个地方都包含一个空字符。这是我的字符串的样子。charnames[550]="1DFA-3327-*\01DFA-3527-*\001DFA-E527-*\00951-1500-我像这样将其转换为whcar_t字符串。wchar_tnames_w[1000];size_tcharsConverted=0;mbstowcs_s(&charsConverted,names_w,names,SIZE);RegSetValueEx(*pKeyHandle,valueName,0,REG_MULTI_SZ,(LPBYT

c++ - 从已编译的应用程序创建 Windows 服务

我想使用MicrosoftVisualStudio2015从我编译的C/C++代码创建一个服务。我编译了我的代码并使用来自应用程序可执行文件的sc.exe创建了一个服务。我的代码由一个无限循环组成,它在时间间隔内将一个简单的字符串写入一个静态文件。创建服务并重启后,服务似乎自动停止了。直接运行时可执行文件工作正常。代码如下:#include"stdafx.h"#include#include#includeusingnamespacestd;voidwrite_txt_file(stringfile_name,stringinput){/*writeastringtoaspecific

c - Windows API MoveFile() 不适用于运行 exe

这里有一个简单的C程序来说明:#include#includeintmain(intargc,char*argv[]){//MoveFile(argv[0],"dst.exe");getchar();return0;}根据上面的代码制作一个test.exe。现在执行test.exe,test.exe由于getchar()卡在那里,然后我可以自由地剪切和粘贴这个exe。但是当我取消对MoveFile(argv[0],"dst.exe");的注释时,我希望它可以将自己移动到dst.exe,结果它有一个dst。exe,而program.exe仍然存在,就像CopyFile()一样。据我所知,

c - 在 Windows 和 *nix 系统上解析共享库路径

当加载给定名称的共享库时,系统会根据搜索顺序或在缓存中搜索某些目录中的实际文件(例如.dll)。如何以编程方式获取给定名称的DLL的解析路径,但不实际加载它?例如。在Windows上,对于kernel32或kernel32.dll它可能会返回C:\windows\system32\kernel32.dll而给定foo它可以是C:\ProgramFiles\my\app\foo.dll。如果做不到,是否有另一种方法来确定某个库是否属于系统?例如。user32.dll或libc.so.6是系统库,但avcodec-55.dll或myhelperslib.so不是。我对适用于Windows、

sql-server - 在带有 SQL Server 2008 的 Windows Server 2003 上安装 TFS 2008 工作组版

我在安装TeamFoundationServer2008WorkgroupEdition时遇到了问题。我有一台几乎全新的WindowsServer2003SP2机器。我已经安装了几乎所有选项的SQLServer2008。当我运行TFS安装时,它允许我输入我的SQL实例名称,然后通过验证过程以确保我拥有我需要的一切。但是,我收到一条错误消息,指出AcompatibleversionofSQLServerisnotinstalled.我已验证并且我的SQLServer2008运行良好。它是标准版,并安装了全文、报告和分析服务。我收到的其他错误是全文没有安装、运行或启用。感谢任何帮助。